package com.ruoyi.web.mapper;

import java.math.BigDecimal;
import java.util.List;
import com.ruoyi.web.domain.MesInnerallotInfo;
import com.ruoyi.web.domain.MesInnerallotDetail;
import com.ruoyi.web.domain.vo.InnerAllotVo;

/**
 * 内部调拨单Mapper接口
 * 
 * @author wxt
 * @date 2024-01-22
 */
public interface MesInnerallotInfoMapper 
{
    /**
     * 查询内部调拨单
     * 
     * @param id 内部调拨单主键
     * @return 内部调拨单
     */
    public MesInnerallotInfo selectMesInnerallotInfoById(Long id);

    /**
     * 查询内部调拨单列表
     * 
     * @param mesInnerallotInfo 内部调拨单
     * @return 内部调拨单集合
     */
    public List<MesInnerallotInfo> selectMesInnerallotInfoList(MesInnerallotInfo mesInnerallotInfo);

    //查询内部调拨单明细
    public List<InnerAllotVo> selectMesDetaillist(MesInnerallotInfo mesInnerallotInfo);
    BigDecimal selectMesDetaillistSumAllotNumber(MesInnerallotInfo mesInnerallotInfo);


    /**
     * 新增内部调拨单
     * 
     * @param mesInnerallotInfo 内部调拨单
     * @return 结果
     */
    public int insertMesInnerallotInfo(MesInnerallotInfo mesInnerallotInfo);

    /**
     * 修改内部调拨单
     * 
     * @param mesInnerallotInfo 内部调拨单
     * @return 结果
     */
    public int updateMesInnerallotInfo(MesInnerallotInfo mesInnerallotInfo);

    /**
     * 删除内部调拨单
     * 
     * @param id 内部调拨单主键
     * @return 结果
     */
    public int deleteMesInnerallotInfoById(Long id);

    /**
     * 批量删除内部调拨单
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesInnerallotInfoByIds(Long[] ids);

    /**
     * 批量删除内部调拨单详情
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesInnerallotDetailByInnerallotids(Long[] ids);
    
    /**
     * 批量新增内部调拨单详情
     * 
     * @param mesInnerallotDetailList 内部调拨单详情列表
     * @return 结果
     */
    public int batchMesInnerallotDetail(List<MesInnerallotDetail> mesInnerallotDetailList);
    

    /**
     * 通过内部调拨单主键删除内部调拨单详情信息
     * 
     * @param id 内部调拨单ID
     * @return 结果
     */
    public int deleteMesInnerallotDetailByInnerallotid(Long id);

   public int getInnerallotInfoMaxId();
}
